<?php
    require_once(dirname(__FILE__) . '/../model/db_driver.php');
	
	class Lega{
		
		var $id;
		var $stagione;
		var $nome;
		var $attiva;
		var $competizioneId;
		
		public function __construct($id, $stagione, $lega_desc, $attiva, $competizioneId){
			$this->id = $id;
			$this->stagione = $stagione;
			$this->nome = $lega_desc;
			$this->setAttiva($attiva);
			$this->competizioneId = $competizioneId;
		}
		
		public function getLegaId(){
			return $this->id;
		}
		
		public function getStagione(){
			return $this->stagione;
		}
		
		public function getNome(){
			return $this->nome;
		}
		
		public function setNome($nome){
			$this->nome = $nome;
		}
		
		public function setStagione($stagione){
			$this->stagione = $stagione;
		}
		
		public function isAttiva(){
			return $this->attiva;
		}
		
		public function setAttiva($enable){
			$this->attiva = (bool)$enable;
		}
		
		public function getCompetizione(){
			return $this->competizioneId;
		}

		public function setCompetizione($compId){
			$this->competizioneId = $compId;
		}
		
		
		public static function caricaLeghe(){
			$db = new DbDriver();
			$arr_db_leghe = $db->db_getLeghe();
			$arr_leghe=Array();
			for($i=0;$i<count($arr_db_leghe); $i++){
				$arr_leghe[$i] = new Lega(
					$arr_db_leghe[$i][0],
					$arr_db_leghe[$i][1],
					$arr_db_leghe[$i][2],
					$arr_db_leghe[$i][3],
					$arr_db_leghe[$i][4]
				);
			}
			return $arr_leghe;
		}
		
		public function getTeams(){
		/* Restituisce una lista delle squadre che appartengono a questa lega */
			return SquadraDesc::getSquadre($this->id);
		}
		
		public function getOtherTeams(){
		/* restituisce una lista delle squadre che non appartengono a questa lega */
			return SquadraDesc::getNoSquadre($this->id);			
		}
		
		
		public function save(){
			$driver = new DbDriver();
			if($this->id == -1){
				$driver->insertLeague($this);	
			}else{
				$driver->saveLeague($this);
			}
		}
		
		public static function getLega($legaId){
			$db = new DbDriver();
			$arr_lega = $db->db_getLega($legaId);
			$lega = new Lega(
					$arr_lega[0][0],
					$arr_lega[0][1],
					$arr_lega[0][2],
					$arr_lega[0][3],
					$arr_lega[0][4]);
			return $lega;
			
		}
		
		public function generaCalendario(){
		/*Crea, in base al tipo di lega il calendario delle girnate*/
		}
		
		public static function getIdPrimaLega(){
		/* restituisce l'id della prima lega attiva */	
			$db = new DbDriver();
			return $db->getIdPrimaLega();
		}
		
		public static function getUltimaGiornata($legaId){
		/* Restituisce l'ultima giornata giocata per questa lega */
			$db = new DbDriver();
			return $db->getUltimaGiornata($legaId);
		}
		
		public static function addTeamToLeague($legaId, $teamId){
			$db = new DbDriver();
			$db->addTeamToLeague($legaId, $teamId);
		}
		
		public static function removeTeamToLeague($legaId, $teamId){
			$db = new DbDriver();
			$db->rmTeamToLeague($legaId, $teamId);
		}
	}
?>